{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this notebook, we go through feature importance analysis. Feature importance analysis is useful tool to find and validate statistical edges. Although p-value has been widely used to validate statistical patterns, it has some caveats:\n",
    "\n",
    "1. Relying on the strong assumption\n",
    "2. In the existence of highly multi collinear model, p-value cannot be robust\n",
    "3. Estimating parameter value probability rather than probability of the null hypothesis in general\n",
    "4. Significance at in-sample\n",
    "\n",
    "The first caveat implies that the model assumes linear model with Gaussian noise, which is not always the case in real world problems. The second caveat states that traditional regression model cannot discriminate among redundant variables, leading to substitution effects between related p-values. Third caveat comes from the fact that p-value estimate probability of empirically estimated parameter being generated subjected to null hypothesis. Thus, they do not provide the probability of null hypothesis being true. The fourth caveat is that p-value estimates significance at in-sample. Multiple testing inflates estimated p-values and leads to p-hacking.\n",
    "\n",
    "Feature importance is alternative way and solve these caveats."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import numpy as np\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We use an artificially generated classification problem. Data has some informative, redundant, and noise features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(10000, 40)\n",
      "        I_0       I_1       I_2       I_3       I_4       N_0       N_1  \\\n",
      "0  2.105359  2.861661  0.104159  0.686149  1.369429 -0.868903 -1.297125   \n",
      "1 -0.330754  1.464379 -1.405119  0.396713 -1.722305  0.471952 -1.443687   \n",
      "2 -0.461334 -0.160432 -2.169501 -0.137535  0.398229 -0.278979 -1.860566   \n",
      "3 -1.573667  3.110105  0.073939  1.232501  1.069429  0.700720 -1.097145   \n",
      "4  0.528677  1.538982 -1.603758  2.056413  0.777722 -0.644594 -0.304476   \n",
      "\n",
      "        N_2       N_3       N_4  ...      R_20      R_21      R_22      R_23  \\\n",
      "0 -0.160205 -0.481024  0.841338  ...  2.349950  0.166769  0.380488  2.693087   \n",
      "1 -0.433773  0.123114 -0.102970  ... -0.387650 -1.457474 -1.381808  1.461375   \n",
      "2  0.909540 -0.396742  2.455228  ... -0.415860 -2.050442 -2.266655 -0.104174   \n",
      "3  0.157145 -1.699373  1.167458  ... -1.524246  0.169084  0.130410  3.068232   \n",
      "4  0.682256 -0.644368  0.280994  ...  0.517340 -1.628636 -1.762587  1.535581   \n",
      "\n",
      "       R_24      R_25      R_26      R_27      R_28      R_29  \n",
      "0  1.498885  0.143971  0.150417  2.005508  1.381180  2.186009  \n",
      "1 -1.703508 -1.423836 -1.467586 -0.077769 -2.025951 -0.294518  \n",
      "2  0.480069 -2.271133 -2.221606 -0.449921  0.495035 -0.628935  \n",
      "3  1.016022  0.027707  0.016242 -1.513480  0.988692 -1.396132  \n",
      "4  0.917122 -1.532231 -1.711304  0.551618  0.699771  0.405662  \n",
      "\n",
      "[5 rows x 40 columns]\n",
      "columns=['I_0', 'I_1', 'I_2', 'I_3', 'I_4', 'N_0', 'N_1', 'N_2', 'N_3', 'N_4', 'R_0', 'R_1', 'R_2', 'R_3', 'R_4', 'R_5', 'R_6', 'R_7', 'R_8', 'R_9', 'R_10', 'R_11', 'R_12', 'R_13', 'R_14', 'R_15', 'R_16', 'R_17', 'R_18', 'R_19', 'R_20', 'R_21', 'R_22', 'R_23', 'R_24', 'R_25', 'R_26', 'R_27', 'R_28', 'R_29']\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/tom/anaconda3/lib/python3.8/site-packages/sklearn/utils/deprecation.py:143: FutureWarning: The sklearn.neighbors.kde module is  deprecated in version 0.22 and will be removed in version 0.24. The corresponding classes / functions should instead be imported from sklearn.neighbors. Anything that cannot be imported from sklearn.neighbors is now part of the private API.\n",
      "  warnings.warn(message, FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "from finance_ml.experiments import get_classification_data\n",
    "\n",
    "X,y = get_classification_data(40, 5, 30, 10000, sigma=0.1)\n",
    "print(X.shape)\n",
    "print(X.head())\n",
    "print(f\"columns={X.columns.tolist()}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Each feature is named as the following name convention:\n",
    "1. I_\\*: informative feature\n",
    "2. R_\\*: redundant feature. The information is shared with some I_\\*\n",
    "3. N_\\*: noise feature. No predictive power is contained"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Mean-Decrease Impurity (MDI)\n",
    "\n",
    "MDI is feature importance is sub-products of decision tree learning process.\n",
    "At each node t splitting with feature f, a tree maximize impurity gain\n",
    "\n",
    "$$ \\Delta g[t, f] = i[t] - (\\frac{N^0}{N} i[t^0] +\\frac{N^1}{N} i[t^1])$$\n",
    "\n",
    "where $N^0$ and $N^1$ are the number of samples of left and right node. $i[t^0]$ and $i[t^1]$ are impurity of left and right node.\n",
    "\n",
    "This impurities are aggregated across nodes with weighted average. The value is bounded at [0, 1] and all added up to 1. The non-important value is expected to be around 1/F where F features exist."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         mean       std\n",
      "I_0  0.020411  0.000395\n",
      "I_1  0.057504  0.001633\n",
      "I_2  0.024392  0.000564\n",
      "I_3  0.017356  0.000187\n",
      "I_4  0.030132  0.000831\n",
      "1/F = 0.025\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import BaggingClassifier\n",
    "import multiprocessing as mp\n",
    "\n",
    "from finance_ml.importance import feat_imp_MDI\n",
    "\n",
    "\n",
    "clf = DecisionTreeClassifier(criterion=\"entropy\", max_features=1, class_weight=\"balanced\", min_weight_fraction_leaf=0)\n",
    "clf = BaggingClassifier(base_estimator=clf, n_estimators=1000, max_features=1.,\n",
    "                        max_samples=1., oob_score=False, n_jobs=mp.cpu_count())\n",
    "clf.fit(X, y);\n",
    "imp = feat_imp_MDI(clf, X.columns)\n",
    "print(imp.head())\n",
    "imp.sort_values('mean', inplace=True)\n",
    "plt.figure(figsize=(10, imp.shape[0] / 5));\n",
    "F = X.shape[1]\n",
    "print(f\"1/F = {1./F}\")\n",
    "plt.axvline(x=1./F, linestyle='dashed', color='r');\n",
    "imp['mean'].plot(kind='barh', color='b', alpha=0.25, xerr=imp['std'], error_kw={'ecolor': 'r'});"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MDI does a good job. Non-noisy features are ranked higher than noise ones. Due to substitution effects, some non-noisy features appear to be much more important than the others. This comes from the fact that some features share the information of other features and they are not necessary to be used for prediction.\n",
    "\n",
    "MDI solves three out of four caveats, 1-3. First, trees do not assume any specific algebraic formula. Second, ensemble of tress reduce variance of the model. Lastly, MDI estimates usefulness of the feature in general. MDI is , however, still estimated at in-sample."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Mean-Decrease Accuracy (MDA)\n",
    "\n",
    "To combat caveat 4, we introduce MDA, which estimates importance using cross validation. For each round, one of the features are shuffled one by one and see the difference from the original performance. This importance is not bounded. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         mean       std\n",
      "I_0  0.019023  0.010687\n",
      "I_1  0.056074  0.016831\n",
      "I_2  0.026049  0.010414\n",
      "I_3  0.020234  0.005002\n",
      "I_4  0.018102  0.016156\n"
     ]
    },
    {
     "data": {
      "image/png": "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AADgHAFf5+j+++/XrFmz9OEPf9jrPs3NzfrMZz6jtWvX6hvf+EYA04VWTk6oEwAAAAA4K+DF0VVXXaWbbrpJ69ev96p9c3Oz8vPzdccdd+iLX/yiOjs7JUljxozRhAkTAhkVAAAAwCgWsAkZ3q+srExut3ezsNXW1qqnp0fl5eWaPHmyZ/vCF74Q4JQAAAAARrMYt7dVSwQxDEM2m01dXV0aN25cqOMAAAAACBFfaoOgjBwBAAAAQLgLenE0f/58WSyWATen0xnsOAAAAAAgKQgTMnxQTU2NTp06NeAxJlwAAAAAECpBL44uvvjiYF8SAAAAAIbl98fqHA6HYmJidP/99/f7/Omnn1ZMTIxX59izZ48++clPKjExURdffLHuu+8+r2e7ixTNzd5vAAAAAAIvIO8cjR07VmvXrtWxY8d87msYhj796U8rJSVFr776qtavX6+KigqtW7cuAEkBAAAA4D0BKY7mzZun5ORklZeX+9y3vr5ep0+fVm1trWbMmKEvfOELWr16tdatWxe5o0cnT56zxZ46dwMAAAAQOgF55yguLk5Op1M33nijbr/9dqWmpnrd96WXXtInP/lJmUwmz2fXX3+9iouLdeDAAV122WXn9HG5XHK5XJ59wzBG9gX8zWI556PsAZo1/3eEFn8AAABAFAjYVN6f//znNWvWLJWUlPjUr7OzU5MmTer32dn9zs7OAfuUl5fLZrN5trS0tPMLDQAAAGDUCuhsdWvXrtV1112nb3/72z71++DEDWcfpxtsQofi4mIVFRV59g3DCK8C6cSJcz567rkQ5AAAAAAwqIAWR9nZ2br++uu1evVqORwOr/okJyefM0L01ltvSdI5I0pnmUymfo/hhR2z+ZyPziSGIAcAAACAQQXssbqz7r//fm3btk0vvviiV+3nzJmj5557Tu+8847ns+3btyslJUWXXnppgFICAAAAGO0CvgjsVVddpZtuuknr16/3qv2NN96o0tJSORwOrV69Wn/729/kdDp17733er1OUiTIyQl1AgAAAADvF/CRI0kqKyvzehpum82mZ599Vn//+981e/ZsLV++XEVFRf3eKQIAAAAAf4txR+ziQYPr6urS+PHj1d7ernHjxoU6DgAAAIAQOTtZ2/Hjx2Wz2YZsG/DH6kKhu7tbksJrxjoAAAAAIdPd3T1scRT0kaP58+fr97//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\n",
      "text/plain": [
       "<Figure size 1000x800 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import BaggingClassifier\n",
    "import multiprocessing as mp\n",
    "\n",
    "from finance_ml.importance import feat_imp_MDA\n",
    "\n",
    "clf = DecisionTreeClassifier(criterion=\"entropy\", max_features=1, class_weight=\"balanced\", min_weight_fraction_leaf=0)\n",
    "clf = BaggingClassifier(base_estimator=clf, n_estimators=1000, max_features=1.,\n",
    "                        max_samples=1., oob_score=False, n_jobs=mp.cpu_count())\n",
    "imp = feat_imp_MDA(clf, X, y, n_splits=5)\n",
    "print(imp.head())\n",
    "imp.sort_values('mean', inplace=True)\n",
    "plt.figure(figsize=(10, imp.shape[0] / 5))\n",
    "imp['mean'].plot(kind='barh', color='b', alpha=0.25, xerr=imp['std'], error_kw={'ecolor': 'r'});"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This method can use any scores in general. One thing you have to care about is substitution effects. In the extreme case, you have two identical features. One of them is shuffled, the accuracy may not change. Thus, feature importance would be close to zero."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Substitution Effects\n",
    "\n",
    "When more than one features share the same predictive information, substitution effects can bias the results of features importance. In the case of MDI, the importance would be halved.\n",
    "\n",
    "In order to deal with this, we have two methods:\n",
    "1. Orthogonalization: Generate PCA components features and estimate importances on them\n",
    "2. Clustering Features: Cluster features and estimate importance of clusters\n",
    "\n",
    "The method 1, may reduce the substitution effects, but it has three caveats:\n",
    "1. non linear relation redundant features still cause substitution effects\n",
    "2. May not have intuitive explanation\n",
    "3. Defined by eigen vectors, which may not necessary maximize the output\n",
    "\n",
    "\n",
    "Let's look at clustering feature importance.\n",
    "\n",
    "For clustering method, it involves the two steps:\n",
    "1. Features Clustering\n",
    "2. Clustered Importance\n",
    "\n",
    "For step1, you can utilize ONC algorithm(`finance_ml/clustering.py`). In this step, you can check the quality of clustering based on silhouette scores. If the scores is not good, one feature may contain information across multiple clusters. you can use the following algorithms:\n",
    "\n",
    "$$X_{n, i} = \\alpha_i + \\sum_{j \\in \\cup_{l < k} D_l} \\beta_{i, j} X_{n, j} + \\epsilon_{n, i} \\forall i \\in D_k$$\n",
    "\n",
    "For each cluster, you regress on the the other cluster. Then you can use residual instead.\n",
    "\n",
    "In the step2, we estimate importance of each cluster rather than individual features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{0: ['I_3', 'R_3', 'R_6', 'R_8', 'R_12', 'R_14'], 1: ['I_2', 'R_0', 'R_2', 'R_10', 'R_16', 'R_19', 'R_21', 'R_22', 'R_25', 'R_26'], 2: ['I_0', 'R_1', 'R_4', 'R_7', 'R_11', 'R_18', 'R_20', 'R_27', 'R_29'], 3: ['I_4', 'R_5', 'R_15', 'R_17', 'R_24', 'R_28'], 4: ['I_1', 'R_9', 'R_13', 'R_23'], 5: ['N_0', 'N_1', 'N_2', 'N_3', 'N_4']}\n"
     ]
    },
    {
     "data": {
      "image/png": "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liyJnp6ePmPxtfOTeCsAAAAAAAAAAFCSQSnkVFVVRX19fUyZMiVWrlwZ+Xw+li5detzrR48eHW984xvjkksuiXvuuSd++tOfxrp16/qdn8vlora2ts9wXBUAAAAAAAAAAGkYlELOK7W2tsby5cujq6vrNa0vFouRz+cTTgUAAAAAAAAAAMkrSyGnsbExGhoaYtmyZUed19nZGW1tbfHoo4/G9u3b46GHHooPfehDMWrUqHjPe95TjqgAAAAAAAAAADAgZSnkRES0tLTEbbfdFk8//XS/c0455ZR48MEH4z3veU/U19fHhz70oaiqqorvf//7ceaZZ5YrKgAAAAAAAABAOgqFk28MQ9mkb7h69eojXr/yyivjyiuvPOra8ePHx7e//e2kIwEAAAAAAAAAQNmUbYccAAAAAAAAAAA4GZS1kLNmzZqorq4+4mhoaChnFAAAAAAAAAAAGBSJH1l1NLNnz47p06cf8bXKyspyRgEAAAAAAAAAGHqKhbQTkICyFnJqamqipqamnI8EAAAAAAAAAICyKuuRVQAAAAAAAAAAMNwp5AAAAAAAAAAAcMK48cYb49xzz41TTjklpk2bFg8++OBR569Zsybe8pa3xKmnnhpnnXVWXH311fHcc88NakaFHAAAAAAAAAAATgh33313XHfddfHpT386fvSjH8XFF18cl112WWzfvv2I87/3ve/FRz7ykbjmmmvi8ccfj29961vxb//2b/Hxj398UHMq5AAAAAAAAAAADBWFwsk3SrBixYq45ppr4uMf/3i86U1vir/+67+OiRMnxk033XTE+Q8//HCcc845ce2118a5554bv/M7vxPz58+PH/zgB0l8Wv3KDurdUzRq4qVpRwAGSSbtAAnY13X0LdMAgKFn68WL0o4AAGXVFuPSjgDQrycP7ko7AgxJ52XHpB2Bl2WHyb4IhWIx7QgDdnA4/GAJOOzFF1+MRx99ND71qU/1uT5z5sz4/ve/f8Q1F110UXz605+Ob3/723HZZZfFs88+G/fcc0+8973vHdSsw+NXAgAAAAAAAAAATkj5fD727NnTZ+Tz+VfN++Uvfxm9vb0xduzYPtfHjh0b3d3dR7z3RRddFGvWrIk5c+bEyJEjY9y4cTFmzJj4yle+Mijv5VcUcgAAAAAAAAAASE1bW1uMHj26z2hra+t3fibTd/urYrH4qmu/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quzsbL366qv2F+kHL4whUmA5xo4dqwEDBqhbt2666667tGjRIn322WfatGlT0NbsDyfObZ3qP8E8Xvzv//6vHnvsMb333nuKiIhwtRY7xwynzqfszODmd4R1kRPng08++aQ2b96s5cuXKyQkRKNHj5YxxqoIVaptrgsuuEALFy7Uhx9+qMaNGysqKkp5eXnq0aOH7edNgdRdE260h3Tmam5z5syp9e9VVq1apeTkZP3lL3/RZZddZnF1/qttjqo+c1S13Am1yTB27FiNGDFCffv2tbGymgm0TwWLQHLMnz9fmzZt0vvvv6+PP/5Y06dPt6FCAMGICTlVaNSokS655BJ1795dr732mgoKCvTHP/7xvOvt2bNHM2bM0Ntvv63rr79el19+uVJSUtSrVy/bLwtX25pr4tChQ+rfv7969+6tt956y9LXtlJYWJguueQS9erVS2lpabr88sv1H//xH67VU9u2ufDCCyWp0tV9unbtqv3799tS69ns7FPZ2dlau3atwsPDFRoaqksuuUSS1KtXL40ZM8aSbVQn0FxRUVHq2LGj+vbtq0WLFmnHjh1avHixjRVXVtsMcXFxKiws1PHjx8stP3LkSKW/NLaanf2pqn0lPDxc7du3t31fCTTXyZMnNWjQoLKreTl1CWA72yMuLk4//PBDpeU//vijpf2srr73FTmRw+7x2+m2uOqqqySdubyrlezM4eZxqrYeffRRLV26VCtXrlTr1q0d3bbd57UjRoxQbm6uDh48qKNHj+q5557Tjz/+aPlfuTlxfm43u88HP/roI82bN09XX321evTooTfeeEMNGjTQnDlzLNlGKTv3b6fGPcm5421WVpaaN2+uW265xarSLdGiRQuFhIRUuhqOE+eyFdndFk4dpyqyYp9ftGiRfvnlF40ePdqmKs+tthmys7O1Z88eNW3aVKGhoWW377j99tsdvQV5KS+MIZK1OXr06KH69evru+++s7jK8px+7+04t3UqQ7COF9KZW+cdOXJEPXv2LNunV69erddee02hoaEqLi52rBY7xwynzqfszuDWd4R1kRPngy1atFCnTp10ww03aN68efrkk0+0du1aK2NUEkiupKQk7dmzR0eOHNFPP/2kd999VwcPHnTkKiZOHG/daA9J6tu3rwYOHFh2pcaaWL16tW6++Wa9/PLLrp0TlqpNjri4uCo/c0hy/HOHVLsM2dnZmj59etkYeN999ykvL0+hoaGO/LF3VQLpU8EkkBwXXXSRLr30Ut19991KT0/Xc8895+g5CQD3MCHHDykpKZo+fboOHTp0zuf98ssvklTuXu/SmXsLlv5ltFP8rdlfBw8eVL9+/dSjRw9lZWVVyhjMjDEqKChwu4wy/rZN27Zt1bJlS+3cubPc8l27dqlNmzZ2llglK/vUa6+9pi1btignJ0c5OTn65JNPJJ2ZIfzCCy8E/Po1EWiuYOhf/mbo2bOn6tevX+4S34cPH9a2bdscv5y8lf2pZ8+eCg8PL7evFBUVad++fY7vKzXJdeLECSUlJSksLExLly519a/2rGyP3r17Ky8vT+vWrStb9tVXXykvL8/WflZX3/uKrM7hxvhtd1ts3rxZ0v+f5GIXK3ME03HqfIwxGj9+vP7rv/5L2dnZjl6KuTpWn9eWio2NVePGjTV//nxFRETohhtusPT1K7Irh5OszFDdZ6d69erZ/tnJyv3brXFPsud4a4xRVlaWRo8e7dpk1eqEhYWpZ8+elW5Xs2LFCldujXQ2u8Y+p49TFdVmn581a5ZuueUWXXDBBTZW5j9/MzzzzDP6+uuvyz6j5uTkSJJeeeUVZWVlOVDpuXlhDJECy/HNN9+oqKjI9nPAiux+7504t7UjQzCPF5J0/fXXa+vWreX26V69emnkyJHKyclx5MoZ1bFyzHDrfMrKDMH0HWFdZPfn79Krgjj93WdtjlstWrRQ06ZNlZ2drSNHjrgyWdDuMcPp9khPT9eHH36oL7/80u91Vq1apZtuuknp6el64IEHbKzOfzXN0bt3b33++ecqLCwsW7Z8+XK1bNmy0q2snFLTDGvWrCk3Bk6bNk1NmjRRTk6Ohg0bZnO11atNnwpGVuQwxqioqMiRK14BcF/dmVXhon79+umyyy5TamrqOZ/XpUsXXXLJJRo3bpzWrVunPXv26KWXXtKKFSt06623OlPs//G3ZunMfS9zcnLK/hqn9APrsWPHJJ35y/p+/frpoosu0vTp0/Xjjz8qNze30izhYDBlyhR98cUX2rdvn7Zu3apnn31Wq1at0siRI90urYy/bePz+fTkk0/qtdde06JFi7R7927927/9m3bs2OHK5YCt7FMXX3yxunXrVvbo1KmTJKlDhw6O/xW+v7m+//57paWlaePGjdq/f7/WrFmjO+64Qw0aNNCNN97oULVV8zdDVFSU7rvvPj3xxBP6n//5H23evFl/+MMfFB8frwEDBjhU7RlW9qfIyEg9+OCDSklJ0fLly7Vz50499NBDkqThw4fbF6IK/uY6efKkkpKSdOrUKc2aNUsnTpwoO666MSveyvbo2rWrBg0apLFjx2rt2rVau3atxo4dqyFDhqhz586uZ/D3vd+/f79ycnK0f/9+FRcXl32A/fnnn23LYHUOt8ZvKzOsWbNGr7zyinJycrR3714tWLBA48aN0y233KKLL764zuQIpuPU+TzyyCN677339P7776tJkyZlWU6fPu1aTVYeoyRpxowZ2rRpk3bt2qXXX39d48ePV1pampo2bWpXBEnW53DjOGVlht69e6tZs2YaM2aMtmzZol27dunJJ5/U3r17ddNNN9mWoSY5/Nm/3Rr3rM5RKjs7W3v37g3K249I0qRJkzRz5ky9/fbb+vbbbzVx4kTt379fDz74oKt1Wd0Wbh2nKqrJPi+ducLH559/HlS3t/Y3Q1xcXLnPqN26dZN05rNrMExOtXoMcYu/Ofbs2aNp06Zpw4YN2rdvnz755BMNHz5cV1xxha6++mqHqj3DyvferXNbO/pPsI8XTZo0qbRPN2rUSM2bNy/bv91i5Zjh1vmUlRmC6TvC8/n555/LTdrcu3dv2fm4W6xsi3Xr1mnGjBnKycnRP/7xD61cuVIjRoxQhw4d1Lt3byfilKnJcSsrK0tr167Vnj179N5772n48OGaOHGi7efiVbHyeBsM7REfH6+RI0cqMzPTr+eXTsaZMGGCbr/99rI+5vY5SE1zjBgxQuHh4UpOTta2bdu0ePFipaamatKkSa7cskqqeYauXbuWO7a2atVK9erVU7du3dSsWTObq61eTXNI0vbt28v2jby8vHLHYbfUNMfcuXO1YMECffvtt/r++++1cOFCTZ48WXfeeWfZlTkBeJxBOWPGjDFDhw6ttHzu3LkmLCzM7N+//5zr79q1y9x2220mJibGNGzY0HTv3t288847NlV7RqA1p6SkGEmVHllZWcYYY7Kysqr8uZPdp7qMFd17772mTZs2JiwszFxwwQXm+uuvN8uXL7e/wGoE2jbGGJOWlmZat25tGjZsaHr37m2++OILGyotz+4+VdHevXuNJLN58+bAiz+HQHIdPHjQDB482MTExJj69eub1q1bmxEjRpgdO3bYWHFlgbbN6dOnzfjx4010dLRp0KCBGTJkiF/9MBBO9KfCwkLzxBNPmJiYGNOkSRMzYMAAs23bNouTlBdIrpUrV1Z7XN27d699RRtn2uPo0aNm5MiRpkmTJqZJkyZm5MiR5vjx40GRwd/3fsyYMVU+Z+XKlXUmhxPjt90ZNm7caK688koTFRVlIiIiTOfOnU1KSoo5deqUZRmcyGGMO8eps/l7LlVdlurGcKs5cYwaNWqUiY6ONmFhYbadqzuRw+7jlBMZ1q9fb5KSkkx0dLRp0qSJueqqq8wnn3xiSf1W5PB3/7Z73HMqhzHG3H333aZPnz6W1u4Pf49Rxhjz+uuvl33m69Gjh1m9erW9xVXgRFs4cZyqyIrPrpMnTzatW7c2xcXFNlR4flZkOJsks3jxYmuKqwGnP4/bJZAc+/fvN3379i3bDzp06GAmTJhgjh49amPF9r/3TpzbOtV/3BovjKnZmHG2xMRE89hjj1lez7k4MWbYfT7l9HcfTn1HeDZ/+1R1ecaMGWN7jcbY3xZff/216d+/v4mOjjbh4eGmbdu25sEHHzQHDhywKdEZgR63nn76aRMbG2vq169vOnbsaF566SVTUlJiU7X/n93HWzfao6pM+/btM+Hh4X59l1TdZ9TExER7Cj5HHYHkMObM+3/ttdea8PBwExcXZ5577jlH+lUpKzKcLSsry0RFRVlTXA1YkaNNmza2frfpj0BzzJs3z/To0cM0btzYNGrUyFx66aUmNTXVnD592qaKAQQbnzFcDwsAAAAAAAAAAAAAAACwCresAgAAAAAAAAAAAAAAACzEhJwamDt3rho3blzl47LLLnO7vCrVxZqrs3///mqzNG7c2NX79dZGXW2bulr3+XghV13MUBdr9kddzVVX6z6bFzJI3sjhhQySd3JIdf9cyitt4YUcXsggkSPY1PVjlOSdtqjIC7m8kEEih5vqYs0VeSFDKcaM4OCFDKXqep/yUlucra7mqqt1n8/gwYOrzZWamup2eX7zQg4vZJDIAeC3g1tW1cDJkyf1ww8/VPmz+vXrq02bNg5XdH51sebq/Prrr9q3b1+1P2/btq1CQ0OdKyhAdbVt6mrd5+OFXHUxQ12s2R91NVddrftsXsggeSOHFzJI3skh1f1zKa+0hRdyeCGDRI5gU9ePUZJ32qIiL+TyQgaJHG6qizVX5IUMpRgzgoMXMpSq633KS21xtrqaq67WfT4HDx7U6dOnq/xZdHS0oqOjHa6odryQwwsZJHIA+O1gQg4AAAAAAAAAAAAAAABgIW5ZBQAAAAAAAAAAAAAAAFiICTkAAAAAAAAAAAAAAACAhZiQAwAAAAAAAAAAAAAAAFiICTkAAAAAAAAAAAAAAACAhZiQAwAAAAAAAAAAAAAAAFiICTkAAAAAAAAAAAAAAACAhZiQAwAAAAAAAAAAAAAAAFiICTkAAAAAAAAAAAAAAACAhf4fqltJS3n6SPcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 3200x1600 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from finance_ml.clustering import cluster_kmeans_base\n",
    "import warnings\n",
    "warnings.simplefilter('ignore')\n",
    "\n",
    "\n",
    "corr0, clstrs, silh = cluster_kmeans_base(X.corr(), max_num_clusters=10, n_init=20)\n",
    "print(clstrs)\n",
    "sns.heatmap(corr0);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this clustering, one of the cluster contains noise features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         mean          std\n",
      "C_0  0.103742  0.000405613\n",
      "C_1  0.244624  0.000720762\n",
      "C_2  0.180836  0.000634086\n",
      "C_3  0.181259  0.000846484\n",
      "C_4  0.231991   0.00131483\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1000x120 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import BaggingClassifier\n",
    "import multiprocessing as mp\n",
    "\n",
    "from finance_ml.importance import feat_imp_MDI_clustered\n",
    "\n",
    "\n",
    "clf = DecisionTreeClassifier(criterion=\"entropy\", max_features=1, class_weight=\"balanced\", min_weight_fraction_leaf=0)\n",
    "clf = BaggingClassifier(base_estimator=clf, n_estimators=1000, max_features=1.,\n",
    "                        max_samples=1., oob_score=False, n_jobs=mp.cpu_count())\n",
    "\n",
    "clf = clf.fit(X, y)\n",
    "imp = feat_imp_MDI_clustered(clf, X.columns, clstrs)\n",
    "print(imp.head())\n",
    "imp.sort_values('mean', inplace=True)\n",
    "plt.figure(figsize=(10, imp.shape[0] / 5))\n",
    "imp['mean'].plot(kind='barh', color='b', alpha=0.25, xerr=imp['std'], error_kw={'ecolor': 'r'})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "         mean       std\n",
      "C_0  0.155872  0.022800\n",
      "C_1  0.237554  0.062861\n",
      "C_2  0.172711  0.042384\n",
      "C_3  0.156361  0.041415\n",
      "C_4  0.224256  0.067502\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAz4AAACGCAYAAAAcul9dAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAZdElEQVR4nO3df2xV9f3H8dctbS+lvW2tFNBwwaINDZUOqONHmxUJ2koRZFnCRF3cdARjg1S6GLv9AbJcUbJNZdK6OSeLFjTK2Eg0ZU0JTMcUZztBKWiVGmN7Z1wtt1S9Fvh8/5jcL6WXtuf23J7by/ORnIRzz+ecz/vy7gf79nPO57iMMUYAAAAAEMcSnA4AAAAAAKKNwgcAAABA3KPwAQAAABD3KHwAAAAAxD0KHwAAAABxj8IHAAAAQNyj8AEAAAAQ9yh8AAAAAMS9RKcDsOrs2bNqb2+Xx+ORy+VyOhwAAAAADjHGqLu7W1deeaUSEgae0xl1hU97e7u8Xq/TYQAAAACIEZ988okmT548YJtRV/h4PB5J//ty6enpDkcDAAAAwCmBQEBerzdUIwxk1BU+525vS09Pp/ABAAAAMKRHYCIqfPx+v3w+n1555RV9+umnmjBhgmbNmqXKykotXrx4wHN///vfa8eOHWpqalJ3d7e++OILZWZmRhJGzNi/3+kIAAAABnf99U5HADjH8qpubW1tKiws1L59+7RlyxYdOXJE9fX1WrRokSoqKgY9/8svv9RNN92kn//85xEFDAAAAABWWZ7xuffee+VyuXTo0CGlpqaGPs/Pz9ddd9016PmVlZWSpP1MkwAAMCQJX/U4HQLiBT9KsMt5dcBoYanw6ezsVH19vXw+X5+i55xo3LIWDAYVDAZD+4FAwPY+AACIZSXlaU6HAAB9GeN0BJZZutWttbVVxhjl5eVFK55+Nm/erIyMjNDGUtYAAAAArLI042O+rexG8sWh1dXVWr9+fWj/3JJ1AABcKv7+6imnQ0CcKClxOgLAOZYKn9zcXLlcLrW0tGjFihVRCqkvt9stt9s9In0BABCLzqaMvnvpEaP4UcIlzNKtbllZWSorK9O2bdvU09P/6biuri674gIAAAAA21he1a2mpkZFRUWaO3euNm3apIKCAp0+fVoNDQ2qra1VS0vLgOf7/X75/X61trZKko4cOSKPx6MpU6YoKysrsm/hMNbEBwAAAGKb5ff45OTkqKmpSYsWLVJVVZWuvfZa3XjjjWpsbFRtbe2g5z/11FOaPXu2Vq9eLUkqKSnR7NmztWfPHuvRAwAAAMAQuIwZXWvRBQIBZWRk6OTJk0pPT3c6HAAAAAAOsVIbWJ7xAQAAAIDRxtbCp66uTmlpaWG3/Px8O7sCAAAAgCGzvLjBQJYvX6558+aFPZaUlGRnVwAAAAAwZLYWPh6PRx6Px85LAgAAAMCwRXSrm9/v19q1azVt2jS53W55vV4tW7ZMjY2NQ76GMUZLliyRy+XSX/7yl0jCAAAAAIAhsTzj09bWpuLiYmVmZmrLli0qKChQb2+v9u7dq4qKCh07dmxI13n88cflcrksBxyL9u93OgIAADBa8P4/wBmWC597771XLpdLhw4dUmpqaujz/Px83XXXXUO6xjvvvKPf/OY3euutt3TFFVdYDQEAgGFL+KrH6RBwqeJHD0447/f2S5Wlwqezs1P19fXy+Xx9ip5zMjMzB73Gl19+qVWrVunJJ5/UpEmTBm0fDAYVDAZD+4FAwErIAACEVVKe5nQIADByRterO6PC0jM+ra2tMsYoLy8v4g7vv/9+FRUV6ZZbbhlS+82bNysjIyO0eb3eiPsGAAAAcGmyNONjvq0UI302Z8+ePdq3b5+am5uHfE51dbXWr18f2g8EAhQ/AIBh+/urp5wOAZeokhKnIwAuTZYKn9zcXLlcLrW0tGjFihWWO9u3b58+/PDDfrfE/eAHP9D3vvc97Q+zSoDb7Zbb7bbcFwAAAzmbwv3ucAg/eoAjXMZYu+FvyZIlOnLkiI4fP97vOZ+urq4Bn/Px+/36/PPP+3w2c+ZMPfHEE1q2bJlycnIG7T8QCCgjI0MnT55Uenq6ldCjhlXdAADAULGqG2AfK7WB5VXdampqVFRUpLlz52rTpk0qKCjQ6dOn1dDQoNraWrW0tFz03EmTJoVd0GDKlClDKnpiFf+AAQAAALHNcuGTk5OjpqYm+Xw+VVVVqaOjQ9nZ2SosLFRtbW00YgQAAACAYbF8q5vTYvFWNwAAAAAjz0ptYGk5awAAAAAYjWwtfOrq6pSWlhZ2y8/Pt7MrAAAAABgyy8/4DGT58uWaN29e2GNJSUl2dgUAAAAAQ2Zr4ePxeOTxeOy8JAAAAAAMW0S3uvn9fq1du1bTpk2T2+2W1+vVsmXL1NjYOOB5nZ2dWrt2raZPn65x48ZpypQpuu+++3Ty5MmIggcAAACAobA849PW1qbi4mJlZmZqy5YtKigoUG9vr/bu3auKigodO3bsoue2t7ervb1dv/rVrzRjxgx9/PHHuueee9Te3q6XX355WF/ESbzAFABgF94NBwDRYXk56/Lych0+fFjHjx9Xampqn2NdXV3KzMy0FMBLL72kO+64Qz09PUpMHLwOi8XlrCl8AIx2CV/1OB0CvlVS4nQECLng9xwAscdKbWBpxqezs1P19fXy+Xz9ih5JloseSaEgL1b0BINBBYPB0H4gELDcBwBgYCXlaU6HAMSe0fWqQwCDsPSMT2trq4wxysvLs6Xz//73v/rlL3+pNWvWXLTN5s2blZGREdq8Xq8tfQMAAAC4dFia8Tl3V5zL5Rp2x4FAQEuXLtWMGTO0YcOGi7arrq7W+vXr+5xH8QMA9vr7q6ecDgHf4lY3AIgOS4VPbm6uXC6XWlpatGLFiog77e7u1k033aS0tDTt3r17wHf8uN1uud3uiPsCAAzubArPMsQMUgEAUWHpVresrCyVlZVp27Zt6unp/yBsV1fXoNcIBAIqLS1VcnKy9uzZo7Fjx1oJAQAAAAAss7yq24kTJ1RUVKSsrCxt2rRJBQUFOn36tBoaGlRbW6uWlpaLntvd3a0bb7xRX375pXbv3t1ngYTs7GyNGTNm0P5jcVU3AAAAACMvaqu6SVJOTo6amprk8/lUVVWljo4OZWdnq7CwULW1tQOe+/bbb+vNN9+UJF1zzTV9jp04cUJXXXWV1XAAAAAAYFCWZ3ycxowPAAAAAMlabWDpGR8AAAAAGI1sLXzq6uqUlpYWdsvPz7ezKwAAAAAYMsvP+Axk+fLlmjdvXthjAy1ZDQAAAADRZGvh4/F45PF47LwkAAAAAAxbRLe6+f1+rV27VtOmTZPb7ZbX69WyZcvU2Ng46Llr1qzR1VdfrZSUFGVnZ+uWW27RsWPHIgkDAAAAAIbE8oxPW1ubiouLlZmZqS1btqigoEC9vb3au3evKioqBi1iCgsLdfvtt2vKlCnq7OzUxo0bVVpaqhMnTgzpPT6xaP9+pyMAAFh1/fVORwAAGEmWl7MuLy/X4cOHdfz48T4vIJWkrq4uZWZmWgrg8OHD+s53vqPW1lZdffXVg7aPxeWsKXwAYPSh8AGA0S9qLzDt7OxUfX29fD5fv6JHkuWip6enR88++6xycnLk9XotnQsAo1nCVz1OhwBS4Lwwv0sAQLRYKnxaW1tljFFeXt6wOq2pqdEDDzygnp4e5eXlqaGhQcnJyWHbBoNBBYPB0H4gEBhW3wAQC0rK05wOAXDe6HqHOoBRztLiBufuinO5XMPq9Pbbb1dzc7MOHDig3NxcrVy5Ul9//XXYtps3b1ZGRkZoY2YIAAAAgFWWnvHp7OzU+PHj5fP5VF1dbUsA33zzjS677DL94Q9/0KpVq/odDzfj4/V6ecYHwKjGrW7OKylxOgJwqxuA4YraMz5ZWVkqKyvTtm3bdN9999myuIH0v5mk84ub87ndbrndbsvXBIBYdjaFX/gcRwoA4JJieTnrmpoaFRUVae7cudq0aZMKCgp0+vRpNTQ0qLa2Vi0tLRc996OPPtKLL76o0tJSZWdn69NPP9Wjjz6qlJQUlZeXD+uLOImVgQAAAIDYZrnwycnJUVNTk3w+n6qqqtTR0aHs7GwVFhaqtrZ2wHPHjh2r1157TY8//ri++OILTZw4USUlJTp48KAmTJgQ8ZcAAAAAgIFYfo+P02LxPT4AAAAARp6V2sDSqm4AAAAAMBrZWvjU1dUpLS0t7Jafn29nVwAAAAAwZJaf8RnI8uXLNW/evLDHkpKS7OwKAAAAAIbM1sLH4/HI4/HYeUkAAAAAGDae8QEAAAAQ9yKa8fH7/fL5fHrllVf06aefasKECZo1a5YqKyu1ePHiAc8NBoP62c9+pp07d+qrr77S4sWLVVNTo8mTJ0f0BWLB/v1ORwAAGCrevQYAlybLMz5tbW0qLCzUvn37tGXLFh05ckT19fVatGiRKioqBj2/srJSu3fv1gsvvKDXX39dp06d0s0336wzZ85E9AUAAAAAYDCW3+NTXl6uw4cP6/jx40pNTe1zrKurS5mZmRc99+TJk8rOztZzzz2nH/7wh5Kk9vZ2eb1evfrqqyorKxu0/1h8jw8zPgDiVcJXPU6HYLuSEqcjiJIL/psMAJcCK7WBpVvdOjs7VV9fL5/P16/okTRg0SNJb7/9tnp7e1VaWhr67Morr9S1116rgwcPhi18gsGggsFgaD8QCFgJGQAwDCXlaU6HgKEaXe8jB4ARZ+lWt9bWVhljlJeXF1Fnfr9fycnJuuyyy/p8PnHiRPn9/rDnbN68WRkZGaHN6/VG1DcAAACAS5elGZ9zd8W5XC5bgzDGXPSa1dXVWr9+fWg/EAhQ/ADACPn7q6ecDsF2cXurGwBgQJYKn9zcXLlcLrW0tGjFihWWO5s0aZK++eYbffHFF31mfT777DMVFRWFPcftdsvtdlvuCwAwfGdT4vC5kTj8SgCAwVle3GDJkiU6cuTIsBY3eP7557Vy5UpJUkdHhyZPnjyqFzcAAAAAMPKs1AaWl7OuqanRmTNnNHfuXO3atUsffPCBWlpatHXrVi1YsGDAczMyMnT33XerqqpKjY2Nam5u1h133KGZM2fqhhtusBoKAAAAAAyJ5ReY5uTkqKmpST6fT1VVVero6FB2drYKCwtVW1s76PmPPfaYEhMTtXLlytALTLdv364xY8ZE9AUAAAAAYDCWb3VzGre6AQAAAJCifKsbAAAAAIw2thY+dXV1SktLC7vl5+fb2RUAAAAADJnlZ3wGsnz5cs2bNy/ssaSkJDu7AgAAAIAhs7Xw8Xg88ng8dl4SAAAAAIYtolvd/H6/1q5dq2nTpsntdsvr9WrZsmVqbGwc9Nzrr79eLperz3brrbdGEkbM2L///zcAAAAAscfyjE9bW5uKi4uVmZmpLVu2qKCgQL29vdq7d68qKip07NixQa+xevVqbdq0KbSfkpJiNQwAAAAAGDLLhc+9994rl8ulQ4cOKTU1NfR5fn6+7rrrriFdY9y4cZo0aZLVrmNWwlc9/7/Tc8HB8/6OAAAAADjDUuHT2dmp+vp6+Xy+PkXPOZmZmUO6Tl1dnZ5//nlNnDhRS5Ys0YYNGy76bFAwGFQwGAztBwIBKyGPiJLytIsfHF2vSQIAAADikqXCp7W1VcYY5eXlRdzh7bffrpycHE2aNEnvvvuuqqur9c4776ihoSFs+82bN+uhhx6KuD8AAAAAsFT4mG9nL1wuV8Qdrl69OvTna6+9Vrm5ubruuuvU1NSkOXPm9GtfXV2t9evXh/YDgYC8Xm/E/UfD3189FfpzSYmDgQAAAAAIy9Kqbrm5uXK5XGppabEtgDlz5igpKUkffPBB2ONut1vp6el9tlhzNiU1tCn1gg0AAACA4ywVPllZWSorK9O2bdvU03PhU/xSV1eX5QDee+899fb26oorrrB8LgAAAAAMhcsYa0/fnzhxQkVFRcrKytKmTZtUUFCg06dPq6GhQbW1tQPOBn344Yeqq6tTeXm5xo8fr6NHj6qqqkopKSl66623NGbMmEH7DwQCysjI0MmTJ2Ny9gcAAADAyLBSG1hezjonJ0dNTU3y+XyqqqpSR0eHsrOzVVhYqNra2gHPTU5OVmNjo5544gmdOnVKXq9XS5cu1YYNG4ZU9AAAAABAJCzP+Djt5MmTyszM1CeffMKMDwAAAHAJO7fwWVdXlzIyMgZsa3nGx2nd3d2SFHMruwEAAABwRnd396CFj60zPnV1dVqzZk3YY1OnTtV777037D7Onj2r9vZ2eTyeYS2rbZdzVSYzUPGDnMYn8hp/yGn8Iafxh5zGn1jLqTFG3d3duvLKK5WQMPC6bbbO+Cxfvlzz5s0LeywpKcmWPhISEjR58mRbrmWnWF1qG5Ejp/GJvMYfchp/yGn8IafxJ5ZyOthMzzm2Fj4ej0cej8fOSwIAAADAsFl6jw8AAAAAjEYUPsPkdru1YcMGud1up0OBTchpfCKv8Yecxh9yGn/IafwZzTkddctZAwAAAIBVzPgAAAAAiHsUPgAAAADiHoUPAAAAgLhH4QMAAAAg7lH4hFFTU6OcnByNHTtWhYWFeu211wZsf+DAARUWFmrs2LGaNm2annrqqX5tdu3apRkzZsjtdmvGjBnavXt3tMJHGHbndPv27XK5XP22r7/+OppfA+exktOOjg7ddtttmj59uhISElRZWRm2HePUWXbnlHHqPCs5/fOf/6wbb7xR2dnZSk9P14IFC7R3795+7RinzrI7p4zT2GAlr6+//rqKi4t1+eWXKyUlRXl5eXrsscf6tYvJsWrQxwsvvGCSkpLM008/bY4ePWrWrVtnUlNTzccffxy2/UcffWTGjRtn1q1bZ44ePWqefvppk5SUZF5++eVQm4MHD5oxY8aYhx9+2LS0tJiHH37YJCYmmjfeeGOkvtYlLRo5ffbZZ016errp6Ojos2FkWM3piRMnzH333Wf+9Kc/mVmzZpl169b1a8M4dVY0cso4dZbVnK5bt848+uij5tChQ+b999831dXVJikpyTQ1NYXaME6dFY2cMk6dZzWvTU1NZseOHebdd981J06cMM8995wZN26c+d3vfhdqE6tjlcLnAnPnzjX33HNPn8/y8vLMgw8+GLb9Aw88YPLy8vp8tmbNGjN//vzQ/sqVK81NN93Up01ZWZm59dZbbYoaA4lGTp999lmTkZFhe6wYGqs5Pd/ChQvD/pLMOHVWNHLKOHXWcHJ6zowZM8xDDz0U2mecOisaOWWcOs+OvH7/+983d9xxR2g/Vscqt7qd55tvvtHbb7+t0tLSPp+Xlpbq4MGDYc/55z//2a99WVmZ/vWvf6m3t3fANhe7JuwTrZxK0qlTpzR16lRNnjxZN998s5qbm+3/AugnkpwOBePUOdHKqcQ4dYodOT179qy6u7uVlZUV+oxx6pxo5VRinDrJjrw2Nzfr4MGDWrhwYeizWB2rFD7n+fzzz3XmzBlNnDixz+cTJ06U3+8Pe47f7w/b/vTp0/r8888HbHOxa8I+0cppXl6etm/frj179mjnzp0aO3asiouL9cEHH0TniyAkkpwOBePUOdHKKePUOXbk9Ne//rV6enq0cuXK0GeMU+dEK6eMU2cNJ6+TJ0+W2+3Wddddp4qKCv30pz8NHYvVsZroaO8xyuVy9dk3xvT7bLD2F35u9Zqwl905nT9/vubPnx86XlxcrDlz5ui3v/2ttm7dalfYGEA0xhTj1Fl2//0zTp0XaU537typjRs36q9//asmTJhgyzVhD7tzyjiNDZHk9bXXXtOpU6f0xhtv6MEHH9Q111yjVatWDeua0Ubhc57x48drzJgx/arRzz77rF/Ves6kSZPCtk9MTNTll18+YJuLXRP2iVZOL5SQkKDvfve7/B+qERBJToeCceqcaOX0QozTkTOcnL744ou6++679dJLL+mGG27oc4xx6pxo5fRCjNORNZy85uTkSJJmzpyp//znP9q4cWOo8InVscqtbudJTk5WYWGhGhoa+nze0NCgoqKisOcsWLCgX/u//e1vuu6665SUlDRgm4tdE/aJVk4vZIzRv//9b11xxRX2BI6LiiSnQ8E4dU60cnohxunIiTSnO3fu1I9//GPt2LFDS5cu7XecceqcaOX0QozTkWXXv7/GGAWDwdB+zI7VEV9OIcadW9LvmWeeMUePHjWVlZUmNTXVtLW1GWOMefDBB82PfvSjUPtzSx/ff//95ujRo+aZZ57pt/TxP/7xDzNmzBjzyCOPmJaWFvPII4/ExJJ+l4po5HTjxo2mvr7efPjhh6a5udn85Cc/MYmJiebNN98c8e93KbKaU2OMaW5uNs3NzaawsNDcdtttprm52bz33nuh44xTZ0Ujp4xTZ1nN6Y4dO0xiYqLZtm1bn2WNu7q6Qm0Yp86KRk4Zp86zmtcnn3zS7Nmzx7z//vvm/fffN3/84x9Nenq6+cUvfhFqE6tjlcInjG3btpmpU6ea5ORkM2fOHHPgwIHQsTvvvNMsXLiwT/v9+/eb2bNnm+TkZHPVVVeZ2traftd86aWXzPTp001SUpLJy8szu3btivbXwHnszmllZaWZMmWKSU5ONtnZ2aa0tNQcPHhwJL4KvmU1p5L6bVOnTu3ThnHqLLtzyjh1npWcLly4MGxO77zzzj7XZJw6y+6cMk5jg5W8bt261eTn55tx48aZ9PR0M3v2bFNTU2POnDnT55qxOFZdxnz71DYAAAAAxCme8QEAAAAQ9yh8AAAAAMQ9Ch8AAAAAcY/CBwAAAEDco/ABAAAAEPcofAAAAADEPQofAAAAAHGPwgcAAABA3KPwAQAAABD3KHwAAAAAxD0KHwAAAABxj8IHAAAAQNz7P1Xg5DwqQHVqAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1000x120 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import BaggingClassifier\n",
    "import multiprocessing as mp\n",
    "\n",
    "from finance_ml.importance import feat_imp_MDA_clustered\n",
    "\n",
    "\n",
    "clf = DecisionTreeClassifier(criterion=\"entropy\", max_features=1, class_weight=\"balanced\", min_weight_fraction_leaf=0)\n",
    "clf = BaggingClassifier(base_estimator=clf, n_estimators=1000, max_features=1.,\n",
    "                        max_samples=1., oob_score=False, n_jobs=mp.cpu_count())\n",
    "imp = feat_imp_MDA_clustered(clf, X, y, clstrs, n_splits=10)\n",
    "print(imp.head())\n",
    "imp.sort_values('mean', inplace=True)\n",
    "plt.figure(figsize=(10, imp.shape[0] / 5))\n",
    "imp['mean'].plot(kind='barh', color='b', alpha=0.25, xerr=imp['std'], error_kw={'ecolor': 'r'})"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you see in the result above, the cluster containing noise gains low importance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
